#ifndef _WOWCRYPT_H
#define _WOWCRYPT_H

class DLL_EXPORT WowCrypt 
{
public:
	WowCrypt();
	~WowCrypt();

	const static size_t CRYPTED_SEND_LEN = 4;
	const static size_t CRYPTED_RECV_LEN = 6;

	void Init();

	void SetKey(ui8*, size_t);

	void DecryptRecv(ui8*, size_t);
	void EncryptSend(ui8*, size_t);
    

    void EncryptFourSend(ui8* data);

    void DecryptSixRecv(ui8*data);
	
	static void GenerateKey(ui8*, ui8*);

	bool IsInitialized() { return _initialized; }

	std::vector<ui8> _key;
	ui8 _send_i, _send_j, _recv_i, _recv_j;
	bool _initialized;
};

#endif